This relates to integrated circuits such as programmable integrated circuits with register circuitry.
Programmable integrated circuits are well known. Programmable integrated circuits can be programmed by a user to implement a desired custom logic function. In a typical scenario, a logic designer uses computer-aided design (CAD) tools to design a custom logic circuit. When the design process is complete, the tools generate configuration data. The configuration data is loaded into programmable integrated circuit memory elements to configure the device to perform the functions of the custom logic circuit. In particular, the configuration data configures programmable interconnects, programmable routing circuits, and programmable logic circuits in the programmable integrated circuits.
The computer-aided design tools may be used in optimizing user designs for improved performance. For example, retiming, pipelining, and multithreading optimizations may be used to modify the register locations in a user design for increased clock speeds. However, such optimizations can be challenging to implement. Modification of register placement in user designs can lead to misaligned control or data signals and may lead to incorrect register operations such as clock enable operations.